<html>
    <head>
        <title>BLOB文件系统存储提供程序</title>
    </head>
    <body>
        <script>
            // BLOB存储文件系统提供程序

                    /*
                        文件系统存储提供程序用于将本地文件系统中的BLOB作为文件夹内的标准文件存储。
                    */

                    /*
                        一、安装  


                            1、ABP CLI 安装
                                使用ABP CLI将 "Volo. Abp.BlosStoring.FileSystem" NuGet包添加到你的项目中：

                                    ①、在.csproj文件目录中打开命令行（终端），你要添加Volo.Abp.BlobStoring.FileSystem包。
     
                                    ②、运行abp add-package Volo.Abp.BlobStoring.FileSystem命令。

                            2、手动安装
                                    如果你想手动执行此操作，

                                    请将"Volo. Abp.BlosStoring.FileSystem" NuGet包安装到你的项目中，

                                    并将[DependsOn(typeof(AbpBlobStoringFileSystemModule))]添加到项目内的ABP模块类中。
                                
                    */

                    /*
                        二、配置   Configuration

                                    如BLOB存储文档中所述配置在模块类的ConfigureServices方法中进行。


                                    eg：  配置为默认使用文件系统存储提供程序：

                                        Configure<AbpBlobStoringOptions>(options =>
                                        {
                                            // 将默认容器配置为使用文件系统存储提供程序
                                            options.Containers.ConfigureDefault(container =>
                                            {
                                                // 配置为使用文件系统存储童工程序
                                                container.UseFileSystem(fileSystem =>
                                                {
                                                    fileSystem.BasePath = "C:\\my-files"; // 设置文件系统存储的根路径。

                                                });
                                            });
                                        });


                                        可配置的选项属性如下：

                                            ①、BasePath:  存储BLOB的基本文件夹路径。需要设置此选项（必须设置）。
                                            
                                            ②、AppendContainerNameToBasePath (bool 默认值：true)：指示是否在基本文件夹中创建一个具有容器名称的文件夹。
                                            
                                                          如果你在同一个根路径中存储多个容器，请将其设置为true.

                                                          否则，如果你不喜欢不必要的更深层次的文件夹，你可以将其设置为false

                                    UseFileSystem扩展方法用于为容器设置文件系统提供程序并配置文件系统选项。

                                    请参阅BLOB存储文档以了解如何为特定容器配置此提供程序。
                    */


                    /*
                        三、文件路径计算

                                文件系统提哦给你程序在文件夹内组织BLOB文件并实现一些约定。

                                默认情况下，BLOB文件的完整路径由以下规则确定：

                                            ①、它从如上所述的 "BasePath" 开始。

                                            ②、如果"当前租户"为null(或者为容器禁用了多租户---请参阅BLOB文档了解如何禁用容器多租户)，则附加host文件夹。

                                            ③、如果当前租户不是null,则附加tenant/<tenant-id>文件夹

                                            ④、如果AppendContainerNameToBasePath为true，则附加容器名称。如果容器名称包含/，这将导致嵌套文件夹。

                                            ⑤、附加BLOB名称。如果BLOB名称包含/，它会创建文件夹。如果BLOB名称包含.它将具有文件扩展名。
                    */

                    /*
                        四、扩展文件BLOB系统提供程序

                                FileSystemBlobProvider是实现文件系统存储的主要服务。你可以从此类继承并覆盖方法来自定义它。


                                IBlobFilePathCalculator服务用于计算文件路径。默认实现是DefaultBlobFilePathCalculator。如果要自定义文件路径计算，可以替换/覆盖它。
                    */
        </script>
    </body>
</html>